package com.heqiang.controller.manager;


import com.heqiang.entity.manager.Role;
import com.heqiang.service.RoleService;
import com.heqiang.tools.Assert;
import com.heqiang.tools.DataTableParam;
import com.heqiang.tools.DataTableResult;
import com.heqiang.tools.DataTableResultUtils;
import com.heqiang.utils.Result;
import com.heqiang.utils.ResultUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import java.util.stream.Collectors;

/*
在引导类MySpringBootApplication同级包或者子级包中创建QuickStartController
默认扫描基础包下所有资源
 */
@RestController
@RequestMapping("/admin/role")
public class RoleController {

    @Autowired
    private RoleService service;


    /***************************************************** Query ******************************************************/
    /**
     * @Description 查询-全部角色
     * @Author zhang heqiang
     * @CreateTime 2020/2/26 17:59
     */
    //查询-全部管理员数据
    @RequestMapping("/search")
    public DataTableResult search(Role role, DataTableParam dataTableParam) {
        return DataTableResultUtils.returnSuccess(service.search(role, dataTableParam));
    }

    /**
     * 获取单个角色信息
     *
     * @param id
     * @return com.heqiang.utils.Result<com.heqiang.entity.manager.Role>
     * @Author zhang heqiang
     * @Date 2020/5/17
     **/
    @RequestMapping("/get")
    public Result<Role> get(String id) {
        Assert.state(null != id, "id不能为空");
        return ResultUtils.returnSuccess(service.get(id));
    }

    /***************************************************** Modify *****************************************************/
    @RequestMapping("/delete")
    public Result del(Long id) {
        service.del(id);
        return ResultUtils.returnSuccess("删除成功!");
    }

    /******************************************************* GO *******************************************************/
    //管理员列表
    @RequestMapping("/go/list")
    public ModelAndView goModify(ModelAndView modelAndView) {
        modelAndView.addObject("weightList", service.findAll().stream().map(Role::getWeight).sorted().collect(Collectors.toSet()));
        modelAndView.setViewName("/role/list");
        return modelAndView;
    }

}
